package com.library.utils;

import java.io.*;
import java.util.Properties;

public class LocalCacheUtil {

    private static final String CACHE_FILE = "localCache.properties";

    /**
     * 存储数据到本地缓存文件
     * key为用户名，value为id（已经转化为String形式），若要更改可修改UserServiceImpl对应方法里的缓存部分
     */
    public static void saveToCache(String key, String value) {
        Properties props = new Properties();
        try {
            // 读取已有缓存（如果存在）
            File file = new File(CACHE_FILE);
            if (file.exists()) {
                try (FileInputStream fis = new FileInputStream(file)) {
                    props.load(fis);
                }
            }

            // 设置新的键值对
            props.setProperty(key, value);

            // 写入文件
            try (FileOutputStream fos = new FileOutputStream(file)) {
                props.store(fos, "Local Cache");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 从本地缓存文件读取数据
     */
    public static String readFromCache(String key) {
        Properties props = new Properties();
        try {
            File file = new File(CACHE_FILE);
            if (!file.exists()) {
                return null; // 文件不存在
            }

            try (FileInputStream fis = new FileInputStream(file)) {
                props.load(fis);
            }

            return props.getProperty(key);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}
